home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / metamail / contrib / ServiceMail / src / requeue / requeue.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-15  |  1.2 KB  |  64 lines

  1. #include <stdio.h>
  2. #define INQPATH "/usr/bin/cat"
  3. main(argc,argv)
  4.   int argc;
  5.   char **argv;
  6.   {
  7.     int c,l;
  8.     char line[1024];
  9.     char line2[1024];
  10.     FILE *fp,*pp;
  11.     int top,sto;
  12.     top=1;
  13.  
  14.     if(argc!=5)
  15.       exit(1);
  16.     if(!(fp=fopen(argv[1],"r")))
  17.       exit(1);
  18.     
  19.     while( (c=getc(fp))!=EOF)
  20.     {
  21.       if(top)
  22.       {
  23.         sprintf(line,"%s -d%s -p%s",argv[2],argv[3],argv[4]);
  24.           pp=popen(line,"w");
  25.         top=0;
  26.         if(sto)
  27.           fputs(line2,pp);
  28.       }
  29.       putc(c,pp);
  30.       if((c=='\n')&&(l=='\n'))
  31.       {
  32.         /*Check for the magic From header line*/
  33.         do
  34.         {
  35.           if(!fgets(line,1024,fp))
  36.           {
  37.             pclose(pp);
  38.             fclose(fp);
  39.             exit(0);
  40.           }
  41.         } while(*line=='\n');
  42.         if((!strncmp(line,"From",4))
  43.           &&(sscanf(line,"%*s %*s %*s %*s %*s %*s %s",line2)))
  44.           {
  45.             pclose(pp);
  46.             top=1;
  47.             sto=1;
  48.             strcpy(line2,line);
  49.             l=0;
  50.           }
  51.           else
  52.           {
  53.             fputs(line,pp);
  54.             l='\n';
  55.           }
  56.       }                
  57.       else
  58.         l=c;      
  59.     }        
  60.   }          
  61.          
  62.   
  63.  
  64.